package com.netty.server.utils;

import java.util.concurrent.atomic.AtomicLong;

public class CmdIdGenerator {
    private final AtomicLong cmdId = new AtomicLong();

    /**
     * 获取下一个cmdId。基于溢出机制完成计数归零。基于掩码保证cmdId为正数。
     *
     * @return 下一个可用的cmdId
     */
    public long nextCmdId() {
        return cmdId.getAndIncrement() & 0xFFFFFFFFL;
    }
}
